package practicedemo40;

import java.util.Scanner;

public class practicedemo40 {
    //金额转换(查表法)
    public static void main(String[] args) {
        //键盘录入
        Scanner sc = new Scanner(System.in);
        int money;

        //判断用户输入的金额是否符合要求，不符合要求重新输入数据
        while (true) {
            System.out.println("输入金额");
            money = sc.nextInt();
            if (money <= 0 || money > 9999999) {
                System.out.println("错误的金额");
                continue;
            } else {
                break;
            }
        }

        //定义一个变量表示钱的大写
        String moneyStr = "";

        //得到money中的每一位数字
        while (true) {
            //从右往左获取数据
            int ge = money % 10;
            //把转换之后的大写拼接到moneyStr中
            moneyStr = getCapitalNumber(ge) + moneyStr;

            //去掉刚刚获取的数据
            money = money / 10;

            //如果数字上的每一位获取到了,那么就是0,跳出循环
            if (money == 0) {
                break;
            }
        }

        //在前面补0,补齐七位
        int count = 7 - moneyStr.length();

        for (int i = 0; i < count; i++) {
            moneyStr = "零" + moneyStr;
        }
        //插入单位
        //定义一个数组表示单位
        String[] arr = {"佰", "拾", "万", "仟", "佰", "拾", "元"};

        String finalArr = "";
        for (int i = 0; i < arr.length; i++) {
            finalArr += moneyStr.charAt(i) + arr[i];
        }
        System.out.println(finalArr);
    }

    public static String getCapitalNumber(int number) {
        String[] arr = new String[]{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        return arr[number];
    }
}
